// vuex 的相关配置
import {createStore} from "vuex";
// 创建实例
const store = createStore({
	state() {
		return {
			username : '张三',
			age: 1,
			login: undefined,
			count: 1
		}
	}, // 全局管理的数据
	getters: {
		getAge(state) {
			// 对于数据进行过滤或者筛选
			return state.age > 0 ? state.age : 0;
		},
		getLogin(state) {
			return state.login ? state.login : JSON.parse(sessionStorage.getItem('login'))
		}
	},
	// 声明 如何修改 状态
	mutations: {
		setAge(state, n) {
			console.log(n)
			state.age = state.age + n
		},
		setCount(state) {
			state.count ++
		},
		setLogin(state, payload) {
			console.log(payload)
			state.login = payload.user
		}
	},
	actions: {
		// context 用于和 store 实例 方法属性 相同的内容
		// actions 不能直接修改状态 而是 提交一个 mutation 在 mutation 中修改状态
		// 可以执行 异步操作
		incrementAge(context) {
			setTimeout(() => {
				context.commit('setAge', 10)
			}, 1000)
		}
	}
})
// 默认导出
export default store